using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using BerkoRules.Objects;
using CrystalDecisions.Windows.Forms;
using BerkoRules.Mappers;
using Microsoft.VisualBasic.CompilerServices;
using Reportes;
using BerkoRules.Entities;

namespace Berko
{
    public partial class frmRptXUnidades : Form
    {
        private ClientesList _clientes;
        private int _index;

        public frmRptXUnidades()
        {
            InitializeComponent();
        }

        private void cmdFecha_Click(object sender, EventArgs e)
        {
            this.Ver_reporte(this._clientes[this.cboClientes.SelectedIndex].cli_ID, "");
        }

        private void cmdUnidad_Click(object sender, EventArgs e)
        {
            this.Ver_reporte(0, this.cboPatente.Text);
        }

        private void frmRptXPatente_Load(object sender, EventArgs e)
        {
            this.Traer_Clientes();
            this.Traer_Unidades();
        }

        private void Traer_Clientes()
        {
            try
            {
                this._clientes = ClientesMapper.Instance().GetAll();
                this.cboClientes.DataSource = this._clientes;
                this.cboClientes.DisplayMember = "cli_Nombre";
                this.cboClientes.ValueMember = "cli_ID";
            }
            catch (Exception exception1)
            {
                ProjectData.SetProjectError(exception1);
                Exception exception = exception1;
                MessageBox.Show("No se pudieron traer los clientes", "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                ProjectData.ClearProjectError();
            }
        }

        private void Traer_Unidades()
        {
            try
            {
                this.cboPatente.DataSource = UnidadesMapper.Instance().Traer_Todas2();
                this.cboPatente.DisplayMember = "uni_Patente";
                this.cboPatente.ValueMember = "uni_ID";
            }
            catch (Exception exception1)
            {
                ProjectData.SetProjectError(exception1);
                Exception exception = exception1;
                ProjectData.ClearProjectError();
            }
        }

        private void Ver_reporte(int cliID, string texto)
        {
            this.Cursor = Cursors.WaitCursor;
            this.cmdFecha.Enabled = false;
            this.cmdFecha.Refresh();
            rpt_Unidades_Por_Cliente cliente = new rpt_Unidades_Por_Cliente();
            DataSet dataSet = new DataSet();
            DataTable table = new DataTable("dt_Unidades");
            if (this.cboClientes.SelectedIndex < 0)
            {
                MessageBox.Show("Seleccione un cliente v\x00e1lido", "Cliente inexistente", MessageBoxButtons.OK, MessageBoxIcon.Hand);
                this.cboClientes.Focus();
                this.Cursor = Cursors.Default;
                this.cmdFecha.Enabled = true;
            }
            else
            {
                try
                {
                    table = UnidadesMapper.Instance().RPT_Por_Cliente(cliID, texto).Copy();
                    table.TableName = "dt_Unidades";
                    dataSet.Tables.Add(table);
                }
                catch (Exception exception1)
                {
                    ProjectData.SetProjectError(exception1);
                    Exception exception = exception1;
                    this.Cursor = Cursors.Default;
                    this.cmdFecha.Enabled = true;
                    ProjectData.ClearProjectError();
                    return;
                    ProjectData.ClearProjectError();
                }
                cliente.SetDataSource(dataSet);
                this.rptVisor.ReportSource = cliente;
                this.rptVisor.RefreshReport();
                this.Cursor = Cursors.Default;
                this.cmdFecha.Enabled = true;
            }
        }


    }
}